package com.dyw.Day10;

/**
 * Devil
 *
 * @create 2022-01-19-22:06
 *
 *
 * 实现strStr()函数。
 *
 * 给你两个字符串haystack 和 needle ，请你在 haystack 字符串中找出 needle 字符串出现的第一个位置（下标从 0 开始）。如果不存在，则返回  -1 。
 */
public class Demo01 {
    public static void main(String[] args) {
        System.out.println(new Demo01().strStr("sfdadf",""));
    }
    //法一 使用java自带函数 indexof()函数
//    public int strStr(String haystack, String needle) {
//        return haystack.indexOf(needle);
//    }
    //法二 使用BF算法
    public int strStr(String haystack, String needle) {
        int hLen = haystack.length();
        int nLen = needle.length();
        if(nLen==0){
            return 0;
        }
        int j=0;
        int i=0;
        while(i<hLen&&j<nLen){
            if(haystack.charAt(i)==needle.charAt(j)){
                i++;
                j++;
            }
            else{
                i=i-j+1;
                j=0;
            }
            if(j==nLen){
                return i-j;
            }
        }
        return -1;
    }
}
